//--------------------------------------------------------------
//
// Size evaluation functions. Based on David Adams paper.
//
//              Author : ripertl
// 
// See : http://code.google.com/p/dungeonfd/wiki/Adamsevaluations
//
//--------------------------------------------------------------
#ifndef __EVALSIZE_H__
#define __EVALSIZE_H__

#include <igraph.h>

// GetSize return the effective surface of the room represented by the node.
float getSize(igraph_t graph, igraph_integer_t node);

// SizeEvaluator1 (number of nodes in the graph)
float sizeevaluator1(igraph_t graph);

// SizeEvaluator2 (total surface of the dungeon)
float sizeevaluator2(igraph_t graph);

// SizeEvaluator3 (Time spent in a room based on neighbor count)
float sizeevaluator3(igraph_t graph);

// SizeEvaluator4 (Mix of all the previous evaluators. It cumulates:
//                         - average surface eplored by a player
//                         - time spent in a room choosing a door.
float sizeevaluator4(igraph_t *graph,int start, igraph_vector_t *end, igraph_vector_t *weights);

#endif

